home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / arexx / trxtlsr3.lha / ExchangeGUI / Exchange.rexx < prev    next >
OS/2 REXX Batch file  |  1996-04-22  |  21KB  |  669 lines

  1. /*
  2.    $VER: Exchange.rexx V1.5 (10.2.96) Copyright by Nils Görs
  3.  
  4.   This ARexx script was written using the tritonrexx.library and
  5.   rexxtricks.library from Jürgen Kohrmeyer <j_kohrmeyer@wilam.north.de>.
  6.  
  7.   This Script needs HandleCX from Martin Berndt.
  8.  
  9.   required libraries: tritonrexx.library
  10.                       rexxtricks.library
  11.  
  12. Schreibfehler bemerkt von: rick@emma.panam.wimsey.com (Rick Younie)
  13. */
  14.  
  15. /*  temporary Filename */
  16. Tmp.Out     = "t:HandleCX.out"
  17.  
  18. /* Name and path from Martin Berndt's 'HandleCX' */
  19. HandleCX    = "HandleCX"
  20.  
  21. /* Path from the configfiles */
  22. Directory   = "REXX:"
  23. ListPattern = "#?.EXCList"
  24. /************************************************
  25.  * Please don't change anything under this line *
  26.  ************************************************/
  27.  
  28. PARSE ARG PubScreen
  29.  
  30. IF PubScreen == "?" THEN DO
  31.  OPTIONS PROMPT "PUBSCREEN/K: "
  32.  PARSE PULL PubScreen
  33. END
  34.  
  35. CALL _InitAll
  36. call _CreateList
  37.  
  38. /*
  39. ** Beschreibung der Applikation
  40. */
  41.  
  42. appname     = 'Exchange'
  43. applongname = 'Exchange - ©1995/96 by Nils Görs'
  44. appinfo     = 'Tool for Commodity controlling'
  45. appversion  = '1.5'
  46. apprelease  = '5'
  47. appdate     = '10.2.96'
  48.  
  49. Activation.0 = 2
  50. Activation.1 = localestring(MSG_CYCLE_ACTIVE)
  51. Activation.2 = localestring(MSG_CYCLE_INACTIVE)
  52.  
  53. Activation2.0 = 2
  54. Activation2.1 = localestring(MSG_CYCLE_ACTIVEALL)
  55. Activation2.2 = localestring(MSG_CYCLE_DEACTIVEALL)
  56.  
  57. IF active.1 == "INACTIVE" THEN N1 = 1
  58.  
  59. _maintags:
  60. windowtags = WindowID(1),
  61.              PubScreenName(PubScreen),
  62.              WindowTitle(appname appversion),
  63.                         BeginMenu(localestring(MSG_MAIN_MENU_PROJECT)),
  64.                         MenuItem(localestring(MSG_MAIN_MENUITEM_ABOUT),10),
  65.                         MenuItem(localestring(MSG_MAIN_MENUITEM_ABOUT2),11) ItemBarlabel,
  66.                         MenuItem(localestring(MSG_MAIN_MENUITEM_UPDATE),12),
  67.                         MenuItem(localestring(MSG_MAIN_MENUITEM_CHANGE),14),
  68.                         MenuItem(localestring(MSG_MAIN_MENUITEM_ICONIFY),16) ItemBarlabel,
  69.                         MenuItem(localestring(MSG_MAIN_MENUITEM_FILEREM),15) ItemBarlabel,
  70.                         MenuItem(localestring(MSG_MAIN_MENUITEM_QUIT),13),
  71.              'HorizGroupA Space VertGroupA Space',
  72.                 NamedSeparatorIN(localestring(MSG_MAIN_TEXT_AVAILABLE),1),
  73.                'Space',
  74.                ListSS('Tools',1,0,0),
  75.               'EndGroup',
  76.               'VertGroupA SpaceB SpaceB',
  77.               GetEntryButton(12),
  78.               GetFileButton(15) 'SpaceB SpaceB SpaceB SpaceB SpaceB SpaceB SpaceB SpaceB',
  79.               'EndGroup',
  80.               'SpaceS',
  81.               'VertGroupA Space',
  82.                 NamedSeparator(localestring(MSG_MAIN_TEXT_INFORMATIONS)),
  83.                 'Space',
  84.                'TROB_FrameBox TRFB_Text',
  85.                 'VertGroupA',
  86.                 'SpaceS',
  87.                  ClippedTextID(Information.1,2),
  88.                  ClippedTextID(Information2.1,22),
  89.                 'Space EndGroup',
  90.                'SpaceB',
  91.                'BeginLine',
  92.                Button(localestring(MSG_MAIN_GADGET_SHOWWINDOW),3),
  93.                'SpaceS',
  94.                Button(localestring(MSG_MAIN_GADGET_HIDEWINDOW),4),
  95.                'EndLine',
  96.               'SpaceS',
  97.                'BeginLine',
  98.                  CycleGadget(activation,n1,5),
  99.                  'SpaceS',
  100.                  Button(localestring(MSG_MAIN_GADGET_REMOVE),6),
  101.                'EndLine',
  102.                'SpaceS',
  103.                'BeginLine',
  104.                  CycleGadget(activation2,0,7),
  105.                  'SpaceS',
  106.                  Button(localestring(MSG_MAIN_GADGET_REMOVEALL),8),
  107.                'EndLine',
  108.               'Space EndGroup Space EndGroup EndProject'
  109.  
  110. /*
  111. ** Unterbrechungssignale
  112. */
  113.  
  114. SIGNAL ON break_c
  115. SIGNAL ON failure
  116. SIGNAL ON halt
  117. SIGNAL ON ioerr
  118. SIGNAL ON syntax
  119.  
  120. app = TR_CREATEAPP('TRCA_Name'     '"'appname'"',
  121.                    'TRCA_LongName' '"'applongname'"',
  122.                    'TRCA_Info'     '"'appinfo'"',
  123.                    'TRCA_Version'  '"'appversion'"',
  124.                    'TRCA_Release'  '"'apprelease'"',
  125.                    'TRCA_Date'     '"'appdate'"',
  126.                    'TAG_END')
  127.  
  128. IF app ~= '00000000'x THEN DO
  129.  
  130.    window = TR_OPENPROJECT(app,windowtags)
  131.    WindowProject=C2D(window) /* zum Locken des Fensters bei About */
  132.  
  133.    IF window ~= '00000000'x THEN DO
  134.       ende = 0
  135.  
  136. IF GUI.1 == "NOGUI" THEN DO
  137.   CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',1)
  138.   CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',1)
  139. END
  140.       DO WHILE ende ~= 1
  141.          CALL TR_WAIT(app,'')
  142. /* 1 = ListView
  143.    3 = ShowWindow
  144.    4 = HideWindow
  145.    5 = Cycle 1
  146.    6 = Remove
  147.    7 = Cycle 2
  148.    8 = Remove all
  149.   10 = About
  150.   11 = About Triton
  151.   12 = Update
  152.   13 = Quit
  153.   14 = Update Screen
  154.   15 = GetFile
  155. */
  156.    
  157.          DO WHILE TR_HANDLEMSG(app,'event')
  158.           IF event.trm_class = 'TRMS_KEYPRESSED' THEN DO
  159.            IF event.trm_code == 32 THEN CALL _InActivate
  160.            IF event.trm_code == 23 THEN DO
  161.             nummer = TR_GETATTRIBUTE(window,7,'TRAT_Value')
  162.              IF Nummer == 0 THEN 
  163.                CALL TR_SETATTRIBUTE(window,7,'TRAT_Value',1)
  164.               ELSE
  165.                CALL TR_SETATTRIBUTE(window,7,'TRAT_Value',0)
  166.            CALL _InActivateALL
  167.            END
  168.           END
  169.  
  170.           IF event.trm_class = 'TRMS_ACTION' THEN DO
  171.             nummer = TR_GETATTRIBUTE(window,1,'TRAT_Value')+1
  172.            SELECT
  173.              WHEN event.trm_id = 3 THEN
  174.                ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'POPUP'
  175.              WHEN event.trm_id = 4 THEN
  176.                ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'HIDE'
  177.              WHEN event.trm_id = 6 THEN DO
  178.                ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'REMOVE'
  179.                 CALL _CreateList
  180.                 CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  181.                 nummer = TR_GETATTRIBUTE(window,1,'TRAT_Value')+1
  182.                 CALL TR_SETATTRIBUTE(window,2,'TRAT_Text',Information.nummer)
  183.                 CALL TR_SETATTRIBUTE(window,22,'TRAT_Text',Information2.nummer)
  184.                 call _CheckGUI
  185.                 call _CheckActive
  186.              END
  187.              WHEN event.trm_id = 8 THEN DO
  188.               DO i = 1 to tools.0
  189.                    ADDRESS COMMAND HandleCX '"'Tools.i'"' 'REMOVE'
  190.               END
  191.                    CALL _CreateList
  192.                    CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  193.                    CALL _CheckGUI
  194.                    CALL _CheckActive
  195.              END
  196.                   WHEN event.trm_id = 10 THEN DO
  197.                    CALL TR_EasyRequest(app,"Exchange.rexx V"appversion "("appdate")",
  198.                    NL NL"(c) 1995/1996 Nils Görs <N.Goers@Art-Line.Art-Line.de>",
  199.                    NL"- freely distributable -","OK", "TREZ_Title" localestring(MSG_TITLE_ABOUT) "TREZ_LockProject" WindowProject)
  200.                   END
  201.  
  202.                   WHEN event.trm_id = 11 THEN DO
  203.                    CALL TR_EasyRequest(app,"This application uses the Triton GUI creation system",
  204.                    NL"Triton is (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de>",
  205.                 NL NL"This application was written using the tritonrexx.library",
  206.                    NL"tritonrexx.library is (C) by Jürgen Kohrmeyer <j_kohrmeyer@wilam.north.de>",,
  207.                    "OK","TREZ_Title" '"'localestring(MSG_MAIN_MENUITEM_ABOUT2)'"' "TREZ_LockProject" WindowProject)
  208.                   END
  209.  
  210.                   WHEN event.trm_id = 12 THEN DO
  211.                    CALL _UpdateToolListe
  212.                   END
  213.  
  214.                   WHEN event.trm_id = 16 THEN DO
  215.                    CALL _Iconify
  216.                   END
  217.  
  218.                   WHEN event.trm_id = 15 THEN DO
  219.                   bool = ASL_RequestFile(window,filelistname,,
  220.                                "ASLFR_PubScreenName" PubScreen,
  221.                                "ASLFR_InitialDrawer" Directory,
  222.                                "ASLFR_InitialPattern" ListPattern,
  223.                                "ASLFR_TitleText" '"'localestring(MSG_REQUESTER_REMOVELIST)'"')
  224.                    IF bool = 1 THEN DO
  225.                     CALL READFILE(filelistname.1,remlist)
  226.                     Auswahl=TR_EasyRequest(app,localestring(MSG_REQUEST_AREYOUSURE) NL filelistname.1 "?",,
  227.                     localestring(MSG_REQUEST_YESSHOWNO),"TREZ_LockProject" WindowProject)
  228.                     IF Auswahl = 1 THEN CALL _removefromFileList
  229.                     IF Auswahl = 2 THEN CALL _removeFileList
  230.                    END
  231.                   END
  232.  
  233.                   WHEN event.trm_id = 14 THEN CALL _NewPubScreen
  234.                   WHEN event.trm_id = 13 THEN DO
  235.                                 Quit=TR_EasyRequest(app,localestring(MSG_REQUEST_REALLYQUIT),,
  236.                                       localestring(MSG_REQUEST_YESNO),"TREZ_Title Quit TREZ_LockProject" WindowProject)
  237.                     IF Quit == 1 THEN DO
  238.                      CALL TR_CLOSEPROJECT(window)
  239.                      CALL TR_DELETEAPP(app)
  240.                      EXIT(0)
  241.                     END
  242.                   END
  243.             OTHERWISE
  244.             NOP
  245.            END
  246.           END
  247.  
  248.             IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  249.               /* Beim Doppelklick wird ShowWindow gestartet */
  250.               IF BITAND(D2X(event.trm_qualifier),'0200'x) = '0200'x THEN
  251.                  ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'POPUP'
  252.                   SELECT
  253.                    WHEN event.trm_id = 1 THEN DO
  254.                      nummer = event.trm_data+1
  255.                       CALL TR_SETATTRIBUTE(window,2,'TRAT_Text',Information.nummer)
  256.                       CALL TR_SETATTRIBUTE(window,22,'TRAT_Text',Information2.nummer)
  257.                       call _CheckGUI
  258.                       call _CheckActive
  259.                   END
  260.                   WHEN event.trm_id = 5 THEN CALL _InActivate
  261.  
  262.                   WHEN event.trm_id = 7 THEN CALL _InActivateALL
  263.                   OTHERWISE
  264.                      NOP
  265.                END
  266.             END
  267.  
  268.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
  269.               IF event.trm_project = window THEN ende = 1
  270.               IF event.trm_project = dummywindow THEN
  271.                CALL _uniconify
  272.             END
  273.  
  274.          END
  275.       END
  276.  
  277.       CALL TR_CLOSEPROJECT(window)
  278.    END
  279.  
  280.    CALL TR_DELETEAPP(app)
  281. END
  282.  
  283. EXIT(0)
  284.  
  285. /*  Routine, die das GUI auf einem neuen PubScreen öffnen läßt */
  286. _NewPubScreen:
  287. IF PUBSCREENLIST('ScreenList') == 0 THEN RETURN
  288.  
  289. delstart=LSEARCH(PubScreen,Screenlist)
  290. IF delstart ~= -1 THEN RXTR_STEMREMOVE(ScreenList,delstart)
  291.  
  292. ScreenListTags = WindowID(2),
  293.    WindowPosition('TRWP_MOUSEPOINTER'),
  294.    WindowTitle(localestring(MSG_TITLE_CHANGEPUBSCREEN)),
  295.    WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
  296.    PubScreenName(Pubscreen),
  297.    'VertGroupA',
  298.       'Space',
  299.       'HorizGroupA',
  300.          'Space',
  301.          ListSel('screenlist',301,0),
  302.          'Space',
  303.       'EndGroup',
  304.       'Space',
  305.       'HorizSeparator',
  306.       'Space',
  307.       'HorizGroupA',
  308.       'Space',
  309.       ButtonRE(localestring(MSG_CANCEL),302),
  310.       'Space',
  311.    'EndGroup Space EndGroup EndGroup EndProject'
  312.  
  313.     PubScreenProject = TR_OPENPROJECT(app,Screenlisttags)
  314.  
  315.   IF PubScreenProject ~= '00000000'x THEN DO
  316.     CALL TR_LOCKPROJECT(window)
  317.  
  318.       DO WHILE ende ~= 1
  319.          DO WHILE TR_HANDLEMSG(app,'event2')
  320.             IF event2.trm_class = 'TRMS_ACTION' THEN ende = 1 /* Cancel Gadget */
  321.  
  322.             IF event2.trm_class = 'TRMS_NEWVALUE' THEN DO
  323.             nummer = TR_GETATTRIBUTE(PubScreenProject,301,'TRAT_Value')+1
  324.              IF PubScreen ~= Screenlist.nummer THEN DO
  325.               PubScreen = ScreenList.nummer
  326.               CALL TR_UNLOCKPROJECT(window)
  327.               CALL TR_CLOSEPROJECT(PubScreenProject)
  328.               CALL TR_CLOSEPROJECT(window)
  329.               CALL TR_DELETEAPP(app)
  330.               CALL _maintags
  331.              END
  332.             ELSE ende = 1
  333.             END
  334.          END
  335.       END
  336.  
  337.    ende = 0
  338.     CALL TR_UNLOCKPROJECT(window)
  339.     CALL TR_CLOSEPROJECT(PubScreenProject)
  340. END
  341. RETURN
  342.  
  343. /* Routine, um die Commodities aus der Fileliste zu entfernen */
  344. _RemoveFileList:
  345. RemoveListTags = WindowID(2),
  346.    WindowPosition('TRWP_MOUSEPOINTER'),
  347.    WindowTitle(localestring(MSG_TITLE_REMOVETHIS)),
  348.    WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
  349.    PubScreenName(Pubscreen),
  350.    'VertGroupA',
  351.       'Space',
  352.       'HorizGroupA',
  353.          'Space',
  354.          ListRO('remlist',301,0),
  355.          'Space',
  356.       'EndGroup',
  357.       'Space',
  358.       'HorizSeparator',
  359.       'Space',
  360.       'HorizGroupA',
  361.       'Space',
  362.       ButtonR(localestring(MSG_GADGET_REMOVE),302),
  363.       ButtonE(localestring(MSG_CANCEL),303),
  364.       'Space',
  365.    'EndGroup Space EndGroup EndGroup EndProject'
  366.  
  367.  
  368.     PubScreenProject = TR_OPENPROJECT(app,Removelisttags)
  369.  
  370.   IF PubScreenProject ~= '00000000'x THEN DO
  371.     CALL TR_LOCKPROJECT(window)
  372.  
  373.       DO WHILE ende ~= 1
  374.          DO WHILE TR_HANDLEMSG(app,'event2')
  375.             IF event2.trm_id = 302 THEN DO
  376.              CALL _removefromFileList
  377.              ende = 1
  378.             END
  379.             IF event2.trm_id = 303 THEN ende = 1
  380.          END
  381.       END
  382.     CALL TR_UNLOCKPROJECT(window)
  383.     CALL TR_CLOSEPROJECT(PubScreenProject)
  384. END
  385. ende = 0
  386. RETURN
  387. _removefromFileList:
  388. DO i = 1 to remlist.0
  389.  ADDRESS COMMAND HandleCX '"'remlist.i'"' 'REMOVE'
  390. END
  391. CALL _UpdateToolListe
  392. RETURN
  393.  
  394. /* hier wird die List der Commodities upgedatet! */
  395. _UpdateToolListe:
  396. CALL _CreateList
  397. CALL _CheckGUI
  398. CALL _CheckActive
  399. CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  400. CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',Nummer-1)
  401. CALL TR_SETATTRIBUTE(window,2,'TRAT_Text',Information.nummer)
  402. CALL TR_SETATTRIBUTE(window,22,'TRAT_Text',Information2.nummer)
  403. RETURN
  404.  
  405.  
  406. /* Es folgen nun die ganzen Unterroutinen, die die Listen erzeugen,
  407.    die GUI überprüfen, Texte updaten etc. etc. */
  408.  
  409. _CreateList:
  410. ADDRESS COMMAND HandleCX "v >"Tmp.out
  411. IF READFILE(Tmp.Out,Infile) == 0 THEN EXIT(5)
  412.  
  413. Tools.0 = Infile.0/2
  414. Information.0 = Tools.0
  415. Information2.0 = Tools.0
  416. Active.0 = Tools.0
  417. GUI.0 = Tools.0
  418. j = 1
  419.  
  420. DO i = 1 TO Infile.0
  421.  /* hier wird alles in die richtigen Listen verteilt,
  422.     Toolname, Active, Gui, Information */
  423.  Tools.j=DELWORD(Infile.i,1,1)
  424.  WordNo=WORDS(Tools.j)
  425.  GUI.j = SUBWORD(Tools.j,WordNo)
  426.  Active.j = SUBWORD(Tools.j,WordNo-1,1)
  427.  Tools.j = SUBWORD(Tools.j,1,WordNo-2)
  428.  
  429.  /* und hier wird die Information zu dem Commodity verarbeitet */
  430.  i = i+1
  431.  Information.j=DELWORD(Infile.i,1,1)
  432.   MaxLenght=LENGTH(Information.j)
  433.   IF INDEX(Information.j,") ") ~= 0 THEN DO
  434.    /* (xx.xx.xx) (xxxxx) */
  435.     Position=LASTPOS(" (",Information.j)
  436.     First=LEFT(Information.j,Position)
  437.     second=RIGHT(Information.j,Maxlenght-Position-1)
  438.     second=LEFT(second,Maxlenght-Position-2)
  439.   END
  440.   ELSE DO
  441.    /* (xxxxx) */
  442.    Position=INDEX(Information.j," (")
  443.    First=LEFT(Information.j,Position)
  444.     second=RIGHT(Information.j,Maxlenght-Position-1)
  445.     second=LEFT(second,Maxlenght-Position-2)
  446.   END
  447.  Information.j = First
  448.  Information2.j = second
  449.  j=j+1
  450. END
  451.  
  452. ADDRESS COMMAND "c:delete" Tmp.Out "QUIET"
  453. RETURN
  454.  
  455. /* wie sollen die Gadget in der GUI denn nun dargestellt werden ? */
  456. _CheckGUI:
  457.  IF gui.nummer == "NOGUI" THEN DO
  458.   CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',1)
  459.   CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',1)
  460.  END
  461.  ELSE DO
  462.   CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',0)
  463.   CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',0)
  464.  END
  465. RETURN
  466.  
  467. _CheckActive:
  468.  IF active.nummer == "INACTIVE" THEN
  469.   CALL TR_SETATTRIBUTE(window,5,'TRAT_Value',1)
  470.  ELSE
  471.   CALL TR_SETATTRIBUTE(window,5,'TRAT_Value',0)
  472. RETURN
  473.  
  474. _InActivate:
  475.   nummer = TR_GETATTRIBUTE(window,1,'TRAT_Value')+1
  476.   ADDRESS COMMAND HandleCX '"'Tools.Nummer'"' 'TOGGLE'
  477.   CALL _CreateList
  478.   CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  479.   CALL _CheckGUI
  480.   CALL _CheckActive
  481. RETURN
  482.  
  483. _InActivateALL:
  484.   nummer = TR_GETATTRIBUTE(window,7,'TRAT_Value')
  485.   IF nummer == 1 THEN Action = 'Disable'
  486.   ELSE Action = 'Enable'
  487.   DO i = 1 to tools.0
  488.   ADDRESS COMMAND HandleCX '"'tools.i'"' Action
  489.   END
  490.   CALL _CreateList
  491.   CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  492.   CALL _CheckGUI
  493.   CALL _CheckActive
  494. RETURN
  495.  
  496. _Iconify:
  497. iwinsize.trd_left=10
  498. iwinsize.trd_top=10
  499. iwinsize.trd_width=20
  500. iwinsize.trd_height=10
  501. iwinsize.trd_left2=10
  502. iwinsize.trd_top2=10
  503. iwinsize.trd_width2=10
  504. iwinsize.trd_height2=20
  505. iwinsize.trd_zoomed=30
  506.  
  507. SleepWin = WindowID(1000),
  508.            PubScreenName(PubScreen),
  509.            WindowTitle(appname appversion),
  510.            WindowDimensions(iwinsize),
  511.                         BeginMenu(localestring(MSG_MAIN_MENU_PROJECT)),
  512.                         MenuItem(localestring(MSG_MAIN_MENUITEM_QUIT),13),
  513.            'EndProject'
  514.  
  515.   ok=tr_closeproject(window)
  516.   window = '00000000'x
  517. dummywindow = TR_OPENPROJECT(app,SleepWin)
  518. return
  519.  
  520. _uniconify:
  521.   ok=tr_closeproject(dummywindow)
  522.   dummywindow = '00000000'x
  523.  
  524.   prefs.iwinx=iwinsize.trd_left
  525.   prefs.iwiny=iwinsize.trd_top
  526.   prefs.iwinw=iwinsize.trd_width
  527.   prefs.iwinh=iwinsize.trd_height
  528.   prefs.iwinx2=iwinsize.trd_left2
  529.   prefs.iwiny2=iwinsize.trd_top2
  530.   prefs.iwinw2=iwinsize.trd_width2
  531.   prefs.iwinh2=iwinsize.trd_height2
  532.   prefs.iwinz=iwinsize.trd_zoomed
  533.  
  534.    window = TR_OPENPROJECT(app,windowtags)
  535.    WindowProject=C2D(window) /* zum Locken des Fensters bei About */
  536.   CALL _UpdateToolListe
  537. return
  538.  
  539. /*******************************************************************************
  540. ** Load and interpret arexx script
  541. *******************************************************************************/
  542.  
  543. loadrexx:
  544.    PARSE ARG dir,file,store
  545.  
  546.    IF dir ~= '' THEN DO
  547.       IF RIGHT(dir,1) = ':' THEN
  548.          file = dir||file
  549.       ELSE
  550.          file = dir||'/'||file
  551.    END
  552.  
  553.    IF ~OPEN('rexxfile',file,'R') THEN
  554.       RETURN(FALSE)
  555.  
  556.    rexxtext = READCH('rexxfile',64000)
  557.    INTERPRET rexxtext
  558.  
  559.    CALL CLOSE('rexxfile')
  560.  
  561.    IF store ~= '' THEN
  562.       INTERPRET store '= rexxtext'
  563.  
  564.    DROP rexxtext
  565.  
  566.    RETURN(TRUE)
  567.  
  568. /*******************************************************************************
  569. ** Text aus dem Catalog-File auslesen, falls vorhanden
  570. *******************************************************************************/
  571.  
  572. localestring:
  573.    PARSE ARG stringnumber
  574.  
  575.    IF catalog ~= 0 THEN
  576.       RETURN(GETCATALOGSTR(catalog,stringnumber,strings.stringnumber))
  577.    ELSE
  578.       RETURN(strings.stringnumber)
  579.  
  580. _InitAll:
  581. NL = '0a'x
  582. TRUE  = 1
  583. FALSE = 0
  584.  
  585.    catalog      = 0
  586.  
  587.  
  588.    /*
  589.    ** Open libs
  590.    */
  591.  
  592.    IF ~SHOW('LIBRARIES','tritonrexx.library') THEN
  593.       IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN
  594.          quit('Cannot open tritonrexx.library!',10)
  595.  
  596.    IF ~SHOW(LIBRARIES,'rexxtricks.library') THEN
  597.       IF ~ADDLIB('rexxtricks.library',9,-30,38) THEN
  598.          quit('Cannot open rexxtricks.library!',10)
  599.  
  600.    IF ~SHOW('LIBRARIES','rexxsupport.library') THEN
  601.       IF ~ADDLIB('rexxsupport.library',9,-30,0) THEN
  602.          quit('Cannot open rexxsupport.library!',10)
  603.  
  604.    IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN
  605.       IF ~ADDLIB('rexxreqtools.library',9,-30,0) THEN
  606.          quit('Cannot open rexxreqtools.library!',10)
  607.  
  608.    /*
  609.    ** Set current dir
  610.    */
  611.  
  612.    PARSE SOURCE . . . script .
  613.    progdir = PATHPART(script)
  614.  
  615.    booll = LENGTH(progdir)
  616.    booli= LASTPOS(":",progdir)
  617.    boolh= LASTPOS("/",progdir)
  618.  
  619.   IF booli <= booll THEN progdir2=progdir||"/"
  620.   IF boolh == 0 THEN progdir2=progdir||"/"
  621.  
  622.    CALL PRAGMA('D',progdir)
  623.  
  624.    /*
  625.    ** Read default strings, open locale.library and catalog
  626.    */
  627.  
  628.    IF ~loadrexx(progdir,'ExchangeGUI.strings','') THEN
  629.       quit('Error reading file "ExchangeGUI.strings"!'),10)
  630.  
  631.    IF ~SHOW('LIBRARIES','locale.library') THEN
  632.       CALL ADDLIB('locale.library',0,-30,0)
  633.  
  634.    IF SHOW('LIBRARIES','locale.library') THEN DO
  635.       language = GETENV('language')
  636.       IF language ~= '' THEN
  637.          catalog = OPENCATALOG(MAKEPATH(progdir,'catalogs/' || language || '/ExchangeGUI.catalog'),'english',0)
  638.  
  639.       IF catalog = 0 THEN
  640.          catalog = OPENCATALOG('ExchangeGUI.catalog','english',0)
  641.  
  642.    END
  643.  
  644. /* Gibt es einen Parameter für den Bildschirm. Wenn nicht, dann wird
  645.    der Screen auf dem defaultPubScreen geöffnet. */
  646.  
  647. IF PubScreen == "" THEN
  648.    PubScreen = RXTR_GETDEFAULTPUBSCREEN()
  649. RETURN
  650.  
  651.  
  652. /*******************************************************************************
  653. ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
  654. *******************************************************************************/
  655.  
  656. break_c:
  657. failure:
  658. halt:
  659. ioerr:
  660. syntax:
  661.    SAY '+++ Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)
  662.    SAY SOURCELINE(sigl)
  663.  
  664.    IF app ~= '00000000'x THEN
  665.       CALL TR_DELETEAPP(app)
  666.  
  667.    EXIT(10)
  668. /*EOS*/
  669.